﻿using System;
using UnityEngine;

namespace ZFramework.Runtime
{
    public partial class EditorModeResourceMgr
    {
        private struct LoadSceneInfo
        {
            private readonly AsyncOperation _asyncOperation;
            private readonly string _sceneAssetPath;
            private readonly int _priority;
            private readonly DateTime _startTime;
            private readonly LoadSceneCallbacks _loadSceneCallbacks;
            private readonly object _userData;

            public LoadSceneInfo(AsyncOperation asyncOperation, string sceneAssetPath, int priority, DateTime startTime,
                LoadSceneCallbacks loadAssetCallbacks, object userData)
            {
                _asyncOperation = asyncOperation;
                _sceneAssetPath = sceneAssetPath;
                _priority = priority;
                _startTime = startTime;
                _loadSceneCallbacks = loadAssetCallbacks;
                _userData = userData;
            }

            public AsyncOperation AsyncOperation
            {
                get { return _asyncOperation; }
            }

            public string AssetPath
            {
                get { return _sceneAssetPath; }
            }

            public int Priority
            {
                get { return _priority; }
            }

            public DateTime StartTime
            {
                get { return _startTime; }
            }

            public LoadSceneCallbacks LoadSceneCallbacks
            {
                get { return _loadSceneCallbacks; }
            }

            public object UserData
            {
                get { return _userData; }
            }
        }
    }
}
